package org.ldl.test;


import org.bouncycastle.jce.provider.BouncyCastleProvider;

import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.Security;
import java.util.Scanner;

/**
 * FinalShell 4.3.10（新版）专业版&高级版激活
 * @author 离山道寺biu
 * @date 2024/03/15
 */
public class FinalShellUtil {

    static {
        Security.addProvider(new BouncyCastleProvider());
    }

    public static String md5(String msg) throws NoSuchAlgorithmException {
        MessageDigest md = MessageDigest.getInstance("MD5");
        byte[] hashBytes = md.digest(msg.getBytes(StandardCharsets.UTF_8));
        StringBuilder sb = new StringBuilder();
        for (byte b : hashBytes) {
            sb.append(String.format("%02x", b));
        }
        return sb.toString();
    }

    public static String keccak384(String msg) throws NoSuchAlgorithmException {
        MessageDigest md = MessageDigest.getInstance("Keccak-384");
        byte[] hashBytes = md.digest(msg.getBytes(StandardCharsets.UTF_8));
        StringBuilder sb = new StringBuilder();
        for (byte b : hashBytes) {
            sb.append(String.format("%02x", b));
        }
        return sb.toString();
    }

    /**
     *
     *
     * 37843784378
     * 程序入口 11111111
     * @param args
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("输入机器码: ");
        String code = scanner.nextLine();
        scanner.close();

        System.out.println("版本号 < 3.9.6 (旧版)");
        try {
            System.out.println("高级版: " + md5("61305" + code + "8552").substring(8, 24));
            System.out.println("专业版: " + md5("2356" + code + "13593").substring(8, 24));
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }

        System.out.println("版本号 >= 3.9.6 (新版)");
        try {
            System.out.println("高级版: " + keccak384(code + "hSf(78cvVlS5E").substring(12, 28));
            System.out.println("专业版: " + keccak384(code + "FF3Go(*Xvbb5s2").substring(12, 28));
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
    }
}
//
//各位家长,大家好
//今天是咱们班 面试的第4天
//给大家发一下进展
//
//
//没有面试通过的学生和老师继续努力，咱们家长多鼓励学生，
//让学生多配合老师
//
//找到工作的，
//各位家长，不要去对比薪资，因为每个学生的情况不一样
//        现在他们找到的工作，都是互联网行业， 都是有发展的
//薪资低的不要去抱怨孩子，不要给孩子增加压力
//
//
//进入职场只是第一步，咱们要稳定发展， 稳定学习，以后有机会换薪资高的
//
//另外孩子毕业了， 我会一直负责咱们孩子的，只要有问题，
//        比如，工作过程中遇到问题了，离职了，换工作了，换城市了
//我会一直负责， 一直跟进，
//各位家长不用担心
//无论咱孩子在哪里， 我们都会沟通的， 孩子们都有我的微信和电话的
